package lfm.mpr;

import java.util.ArrayList;
import java.util.Iterator;

import objects.Equipo;
import objects.Jugador;
import objects.User;
import db.AdminBaseDatosHelper;
import adapter.AdapterFilterListJugadores;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ListView;

public class SelectJugadorActivity extends Activity{
	
	private AdminBaseDatosHelper miBBDDHelper;
	private String user;
	private ListView listView_team;
	private AdapterFilterListJugadores adaptador;
	public static EditText filterText;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
		
        super.onCreate(savedInstanceState);
        setContentView(R.layout.select_jugador);
        final Bundle extras = getIntent().getExtras();
        miBBDDHelper = new AdminBaseDatosHelper(SelectJugadorActivity.this);
        Intent i = getIntent();
        
        SharedPreferences prefs =
      		     getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
        
        user = prefs.getString("user", "lfm");
        
        filterText = (EditText) findViewById(R.id.search_box);
        listView_team = (ListView)findViewById(R.id.ExpandablelistViewTab2);
        listView_team.setTextFilterEnabled(true);
        listView_team.setFastScrollEnabled(true); 
        int[] colors = {0, 0xFFFF0000, 0}; // red for the example
        listView_team.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
        listView_team.setDividerHeight(1);
        
        Log.i("LFM_Log","Recuperamos jugadores de la BD");
        ArrayList<Jugador> lista_Total_Jugadores = miBBDDHelper.GetJugadores_posicion(extras.getString("posicion"));
        lista_Total_Jugadores = Agrupar_lista_Equipo(lista_Total_Jugadores);
        
        adaptador = new AdapterFilterListJugadores(SelectJugadorActivity.this, lista_Total_Jugadores, extras.getString("posicion"), extras.getString("posicion_interna"));
        listView_team.setAdapter(adaptador);
        
        filterText.setOnKeyListener(new OnKeyListener() {
  	      public boolean onKey(View v, int keyCode, KeyEvent event) {
  	          if (keyCode  == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) {
  	        	  adaptador.getFilter().filter(filterText.getText().toString());
  	        	  InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
  	        	  imm.hideSoftInputFromWindow(filterText.getWindowToken(), 0);
  	        	  return true;
  	          }
  	          else return false;
  	      }

  	  });
        
	}//end_onCreate
	
	
	
	
	
	private ArrayList<Jugador> Agrupar_lista_Equipo(ArrayList<Jugador> list){
		
		ArrayList<Jugador> list_portero = new ArrayList<Jugador>();
		ArrayList<Jugador> list_defensas = new ArrayList<Jugador>();
		ArrayList<Jugador> list_medios = new ArrayList<Jugador>();
		ArrayList<Jugador> list_delanteros = new ArrayList<Jugador>();
		ArrayList<Jugador> list_total = new ArrayList<Jugador>();
		
		 Iterator<Jugador> itr = list.iterator();
		 
		  while (itr.hasNext()) {
			  Jugador jugador = (Jugador)itr.next();
			  if(jugador.getPosicion().equals("portero")){
				  list_portero.add(jugador);
			  }
			  else if(jugador.getPosicion().equals("defensa")){
				  list_defensas.add(jugador);
			  }
			  else if(jugador.getPosicion().equals("medio")){
				  list_medios.add(jugador);
			  }
			  else if(jugador.getPosicion().equals("delantero")){
				  list_delanteros.add(jugador);
			  }
		  }//end_while
		  
		  if(list_portero.size()>0) {
			  
			  //ponemos los porteros
			  Iterator<Jugador> itr_portero = list_portero.iterator();
			  while (itr_portero.hasNext()) {
				  Jugador jugador = (Jugador)itr_portero.next();
				  list_total.add(jugador);
			  }
		  }
		  
		  if(list_defensas.size()>0) {
 
			//ponemos los defensas
			  Iterator<Jugador> itr_defensas = list_defensas.iterator();
			  while (itr_defensas.hasNext()) {
				  Jugador jugador = (Jugador)itr_defensas.next();
				  list_total.add(jugador);
			  }
		  }
		
		  if(list_medios.size()>0) {
			 
			//ponemos los medios
			  Iterator<Jugador> itr_medios = list_medios.iterator();
			  while (itr_medios.hasNext()) {
				  Jugador jugador = (Jugador)itr_medios.next();
				  list_total.add(jugador);
			  }
		  }
		  
		  if(list_delanteros.size()>0) {
			  
			//ponemos los delanteros
			  Iterator<Jugador> itr_delanteros = list_delanteros.iterator();
			  while (itr_delanteros.hasNext()) {
				  Jugador jugador = (Jugador)itr_delanteros.next();
				  list_total.add(jugador);
			  }
		  }
		  
		  
		return list_total;
	}//end_Agrupar_lista_Equipo

}//end_SelectJugadorActivity
